{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import torch\n",
    "import math\n",
    "import matplotlib.pyplot as plt\n",
    "from torch import nn\n",
    "from sklearn.ensemble import VotingRegressor\n",
    "import lightgbm as lgb\n",
    "from torch.utils.data import Dataset, DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 是否重新训练两个模型的开关，True表示是\n",
    "lgbm_switch = False\n",
    "gru_switch = True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 第一部分：读入原始数据并加工成具备时空相关性的序列\n",
    "\n",
    "这一部分从读入数据开始，每个风机的数据是T×D的二维tensor，T是时间点，D是特征数量\n",
    "需要有一个子模块来利用每个风机的tensor得到风机之间的相似度矩阵，取出前k个最相关的风机用于提取特征\n",
    "对于这些相关风机，需要使用一些方法聚合它们的信息，和当前风机原有的特征结合\n",
    "第一部分最终输入的是N×T×D的tensor，最终输出的应该是一个N×T×D'的tensor，其中N是风机的数量，D'是添加了相关特征的新特征维数\n",
    "\n",
    "这里面相似度的提取模块是可变的，可以是差分相似度，位置相似度，余弦相似度等等\n",
    "把读数据这一块也做成可变的，既可以读kdd比赛的数据，又可以读中车的实际数据\n",
    "\n",
    "##### v0\n",
    "\n",
    "1.分别读入每个风机的数据\n",
    "\n",
    "2.将它们按时间戳合并为三维tensor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 风机数据文件名列表，后续有新的风机数据只需要添加到列表中\n",
    "# 列表内还是列表，表示同一台风机不同天数的数据\n",
    "filenames = []\n",
    "\n",
    "for i in range(1, 16):\n",
    "    if i == 9:\n",
    "        continue\n",
    "    turbine_data = [\n",
    "        '../input/turbines/WuXingLing_WuXingLing0' + '{:02d}'.format(i) + '_20231105000000_20231106000000_SCADA.csv', \n",
    "        '../input/turbines/WuXingLing_WuXingLing0' + '{:02d}'.format(i) + '_20231106000000_20231107000000_SCADA.csv'\n",
    "    ]\n",
    "    \n",
    "    filenames.append(turbine_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                  设备                   时间     风向1     风向2  短滤波风速\n",
      "0      WuXingLing015  2023-11-05 00:00:00  57.639 -11.925   9.59\n",
      "1      WuXingLing015  2023-11-05 00:00:01  -9.941 -18.970   9.51\n",
      "2      WuXingLing015  2023-11-05 00:00:02  42.580 -10.525   9.71\n",
      "3      WuXingLing015  2023-11-05 00:00:03 -34.282  -9.398   9.31\n",
      "4      WuXingLing015  2023-11-05 00:00:04   9.265   4.918   9.61\n",
      "...              ...                  ...     ...     ...    ...\n",
      "86395  WuXingLing015  2023-11-05 23:59:55 -10.167  -1.935  11.41\n",
      "86396  WuXingLing015  2023-11-05 23:59:56  -9.666  -4.262  11.11\n",
      "86397  WuXingLing015  2023-11-05 23:59:57  -9.694  -7.407  10.97\n",
      "86398  WuXingLing015  2023-11-05 23:59:58  36.160  -8.417  10.27\n",
      "86399  WuXingLing015  2023-11-05 23:59:59   3.291   7.301  10.45\n",
      "\n",
      "[86400 rows x 5 columns]\n"
     ]
    }
   ],
   "source": [
    "# 风机数据列表，由每个风机数据的DataFrame组成\n",
    "df_data = []\n",
    "for turbines in filenames:\n",
    "    data = pd.DataFrame({})\n",
    "    for f in turbines:\n",
    "        data = pd.concat((data, pd.read_csv(f)), ignore_index=True, axis=0)\n",
    "    df_data.append(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>time</th>\n",
       "      <th>WuXingLing001_u</th>\n",
       "      <th>WuXingLing001_v</th>\n",
       "      <th>WuXingLing001_speed</th>\n",
       "      <th>WuXingLing001_direct</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2023-11-05 00:00:00</td>\n",
       "      <td>8.706499</td>\n",
       "      <td>1.471656</td>\n",
       "      <td>8.83</td>\n",
       "      <td>9.594</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2023-11-05 00:00:01</td>\n",
       "      <td>8.884077</td>\n",
       "      <td>1.375963</td>\n",
       "      <td>8.99</td>\n",
       "      <td>8.804</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2023-11-05 00:00:02</td>\n",
       "      <td>8.668756</td>\n",
       "      <td>2.492604</td>\n",
       "      <td>9.02</td>\n",
       "      <td>16.042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2023-11-05 00:00:03</td>\n",
       "      <td>9.015913</td>\n",
       "      <td>1.234225</td>\n",
       "      <td>9.10</td>\n",
       "      <td>7.795</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2023-11-05 00:00:04</td>\n",
       "      <td>9.028695</td>\n",
       "      <td>1.484979</td>\n",
       "      <td>9.15</td>\n",
       "      <td>9.340</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86395</th>\n",
       "      <td>2023-11-05 23:59:55</td>\n",
       "      <td>18.317170</td>\n",
       "      <td>-2.291914</td>\n",
       "      <td>18.46</td>\n",
       "      <td>-7.132</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86396</th>\n",
       "      <td>2023-11-05 23:59:56</td>\n",
       "      <td>18.292907</td>\n",
       "      <td>-1.681204</td>\n",
       "      <td>18.37</td>\n",
       "      <td>-5.251</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86397</th>\n",
       "      <td>2023-11-05 23:59:57</td>\n",
       "      <td>18.353245</td>\n",
       "      <td>-1.786616</td>\n",
       "      <td>18.44</td>\n",
       "      <td>-5.560</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86398</th>\n",
       "      <td>2023-11-05 23:59:58</td>\n",
       "      <td>18.236389</td>\n",
       "      <td>0.704715</td>\n",
       "      <td>18.25</td>\n",
       "      <td>2.213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86399</th>\n",
       "      <td>2023-11-05 23:59:59</td>\n",
       "      <td>18.406476</td>\n",
       "      <td>0.360171</td>\n",
       "      <td>18.41</td>\n",
       "      <td>1.121</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>86400 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                      time  WuXingLing001_u  WuXingLing001_v  \\\n",
       "0      2023-11-05 00:00:00         8.706499         1.471656   \n",
       "1      2023-11-05 00:00:01         8.884077         1.375963   \n",
       "2      2023-11-05 00:00:02         8.668756         2.492604   \n",
       "3      2023-11-05 00:00:03         9.015913         1.234225   \n",
       "4      2023-11-05 00:00:04         9.028695         1.484979   \n",
       "...                    ...              ...              ...   \n",
       "86395  2023-11-05 23:59:55        18.317170        -2.291914   \n",
       "86396  2023-11-05 23:59:56        18.292907        -1.681204   \n",
       "86397  2023-11-05 23:59:57        18.353245        -1.786616   \n",
       "86398  2023-11-05 23:59:58        18.236389         0.704715   \n",
       "86399  2023-11-05 23:59:59        18.406476         0.360171   \n",
       "\n",
       "       WuXingLing001_speed  WuXingLing001_direct  \n",
       "0                     8.83                 9.594  \n",
       "1                     8.99                 8.804  \n",
       "2                     9.02                16.042  \n",
       "3                     9.10                 7.795  \n",
       "4                     9.15                 9.340  \n",
       "...                    ...                   ...  \n",
       "86395                18.46                -7.132  \n",
       "86396                18.37                -5.251  \n",
       "86397                18.44                -5.560  \n",
       "86398                18.25                 2.213  \n",
       "86399                18.41                 1.121  \n",
       "\n",
       "[86400 rows x 5 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def wind_uv(series):\n",
    "    alpha = math.radians(series['风向2'])\n",
    "    x = series['短滤波风速']\n",
    "    return x * math.cos(alpha), x * math.sin(alpha)\n",
    "\n",
    "\n",
    "for i in range(len(df_data)):\n",
    "    df_data[i]['time'] = df_data[i]['时间']\n",
    "    turbine_id = df_data[i]['设备'][0]\n",
    "    # 生成两个方向的风向并命名为“<设备名> + u”和“<设备名> + v”\n",
    "    df_data[i][turbine_id + '_u'], df_data[i][turbine_id + '_v'] = zip(*df_data[i].apply(wind_uv, axis=1))\n",
    "    df_data[i][turbine_id + '_speed'] = df_data[i]['短滤波风速']\n",
    "    df_data[i][turbine_id + '_direct'] = df_data[i]['风向2']\n",
    "    df_data[i] = df_data[i].drop(['设备', '时间', '风向1', '风向2', '短滤波风速'], axis=1)\n",
    "\n",
    "\n",
    "df_data[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = df_data[0]\n",
    "\n",
    "for i in range(1, len(df_data)):\n",
    "    data = pd.merge(data, df_data[i], on=['time'], how='inner')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "一个base，表示使用naive预测时的mse误差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.06782370397805532"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "base_prediction = data['WuXingLing001_speed'][:-1]\n",
    "base_actual = data['WuXingLing001_speed'].shift(-1)[:-1]\n",
    "mean_squared_error(base_actual, base_prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "#data.to_csv('turbines.csv', index=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 第二部分：使用seq2seq模型来进行预测\n",
    "\n",
    "把N×T×D'的tensor输入进来，用seq2seq的模型给出一个序列预测\n",
    "\n",
    "手上能用的模型有itransformer，gru，timesnet等，往里套的话应该比较简单的。就是得做个区分，这些模型是用在一个时间序列上的，而这里需要用一个模型来预测多个时间序列（不同风机的数据算作单独的序列）\n",
    "\n",
    "可能需要设计一个风机id的embedding\n",
    "\n",
    "然后就是时间embedding可能需要改，分钟数和秒数没必要，但是可以把“一天当中的多少秒”作为一个特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = 'cuda'\n",
    "time_steps = 144\n",
    "features = 55\n",
    "epoch = 30\n",
    "batch_size = 32"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "class GRUModel(nn.Module):\n",
    "    def __init__(self, input_size, hidden_size, num_layers, output_size):\n",
    "        super(GRUModel, self).__init__()\n",
    "        self.gru = nn.GRU(\n",
    "            input_size=input_size, \n",
    "            hidden_size=hidden_size, \n",
    "            num_layers=num_layers, \n",
    "            batch_first=True\n",
    "        )\n",
    "        self.fc = nn.Linear(hidden_size, output_size)\n",
    "    \n",
    "    def forward(self, x):\n",
    "        out, _ = self.gru(x)\n",
    "        out = self.fc(out[:, -1, :])\n",
    "        return out"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "gru = GRUModel(features, 8, 1, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "class GRUDataset(Dataset):\n",
    "    def __init__(self, data_train, data_target, seq_len):\n",
    "        super(GRUDataset, self).__init__()\n",
    "        self.x = data_train\n",
    "        self.y = data_target\n",
    "        self.seq_len = seq_len\n",
    "        \n",
    "        \n",
    "    def __getitem__(self, index):\n",
    "        return self.x[index:index + self.seq_len], self.y[index + self.seq_len]\n",
    "        \n",
    "    def __len__(self):\n",
    "        return len(self.x) - self.seq_len"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 准备数据（假设X_train和y_train是你的训练数据）\n",
    "gru_data_target = torch.tensor(data['WuXingLing001_speed'].to_numpy(), dtype=torch.float32)\n",
    "gru_data_train = torch.tensor(data.drop(['WuXingLing001_speed', 'time'], axis=1).to_numpy(), dtype=torch.float32)\n",
    "gru_data_target = gru_data_target.unsqueeze(1)\n",
    "\n",
    "train_data = gru_data_train[:int(len(gru_data_train) * 0.7)]\n",
    "train_target = gru_data_target[:int(len(gru_data_target) * 0.7)]\n",
    "test_data = gru_data_train[len(train_data):]\n",
    "test_target = gru_data_target[len(train_target):]\n",
    "\n",
    "trainset = GRUDataset(train_data, train_target, time_steps)\n",
    "trainloader = DataLoader(trainset, batch_size=batch_size, shuffle=True)\n",
    "testset = GRUDataset(test_data, test_target, time_steps)\n",
    "testloader = DataLoader(testset, batch_size=batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Trainer:\n",
    "    def __init__(self, model, optimizer, criterion):\n",
    "        self.model = model\n",
    "        self.optimizer = optimizer\n",
    "        self.criterion = criterion\n",
    "    \n",
    "    def train(self, num_epoch, trainloader, testloader):\n",
    "        trainloss = []\n",
    "        testloss = []\n",
    "        for i in range(num_epoch):\n",
    "            loss = self.train_epoch(trainloader)\n",
    "            print(f'training {i} epoch:; loss is {loss}')\n",
    "            trainloss.append(loss)\n",
    "            acc = self.test(testloader)\n",
    "            print(f'test acc rate is {acc}')\n",
    "            testloss.append(acc)\n",
    "        plt.plot(trainloss, label='train_loss')\n",
    "        plt.plot(testloss, label='test_acc')\n",
    "        plt.ylim(0, 1)\n",
    "        plt.xlabel('epoch')\n",
    "        plt.ylabel('loss/acc')\n",
    "        plt.legend()\n",
    "        plt.show()\n",
    "    \n",
    "    def train_epoch(self, dataloader):\n",
    "        total_loss = 0.0\n",
    "        for x, y in dataloader:\n",
    "            total_loss += self.train_step(x, y)\n",
    "        return total_loss / len(dataloader)\n",
    "    \n",
    "    def train_step(self, inputs, targets):\n",
    "        self.model.train()\n",
    "        self.optimizer.zero_grad()\n",
    "        outputs = self.model(inputs)\n",
    "        loss = self.criterion(outputs, targets)\n",
    "        loss.backward()\n",
    "        self.optimizer.step()\n",
    "        return loss.item()\n",
    "    \n",
    "    def test(self, dataloader):\n",
    "        total_acc = 0.0\n",
    "        for x, y in dataloader:\n",
    "            total_acc += self.test_step(x, y)\n",
    "        return total_acc / len(dataloader)\n",
    "    \n",
    "    def test_step(self, inputs, targets):\n",
    "        self.model.eval()\n",
    "        outputs = self.model(inputs)\n",
    "        loss = self.criterion(outputs, targets)\n",
    "        return loss.item()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "grutrainer = Trainer(gru, torch.optim.Adam(gru.parameters(), lr=0.0003), nn.MSELoss())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "grutrainer.train(epoch, trainloader, testloader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 第三部分：树模型预测\n",
    "\n",
    "先搞个风机的聚类，弄个list，每个list里面是几个风机的集合，N'×T×D’的tensor\n",
    "\n",
    "对每个集合搞个类似上次比赛里的那种集成模型框架，然后搞几个lgbm模型去预测\n",
    "\n",
    "树模型只能出单点预测，就对于每个集合，搞F个树模型，F是要预测的序列长度\n",
    "\n",
    "##### v0\n",
    "\n",
    "实现lgbm的单点预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_parameters = {\n",
    "    \"n_estimators\": 2500,\n",
    "    \"learning_rate\": 0.052587652,\n",
    "    \"colsample_bytree\": 0.9,\n",
    "    \"colsample_bynode\": 0.6,\n",
    "    \"lambda_l1\": 3.5,\n",
    "    \"lambda_l2\": 1.5,\n",
    "    \"max_depth\": 16,\n",
    "    \"num_leaves\": 100,\n",
    "    \"min_data_in_leaf\": 50,\n",
    "    \"objective\": \"regression_l1\",\n",
    "    \"device\": \"gpu\",\n",
    "}\n",
    "\n",
    "votingRegressor = VotingRegressor([(f'lightgbm_{i}', lgb.LGBMRegressor(**model_parameters, random_state=i)) for i in range(12)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "lgbm_data = data.copy().drop('time', axis=1)\n",
    "rolling_nums1 = [1, 2, 3]\n",
    "rolling_nums2 = [1, 2, 3, 4, 5, 6, 7]\n",
    "\n",
    "cols = lgbm_data.columns.copy()\n",
    "for col in cols:\n",
    "    if col[:13] == 'WuXingLing001':\n",
    "        for rolling_num in rolling_nums2:\n",
    "            lgbm_data[str(col) + '_' + str(rolling_num)] = lgbm_data[col].shift(rolling_num)\n",
    "    else:\n",
    "        for rolling_num in rolling_nums1:\n",
    "            lgbm_data[str(col) + '_' + str(rolling_num)] = lgbm_data[col].shift(rolling_num)\n",
    "\n",
    "lgbm_data['target'] = lgbm_data['WuXingLing001_speed'].shift(-1)\n",
    "lgbm_data = lgbm_data[:-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_data = lgbm_data[:int(len(lgbm_data) * 0.7)]\n",
    "test_data = lgbm_data[len(train_data):]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>WuXingLing001_u</th>\n",
       "      <th>WuXingLing001_v</th>\n",
       "      <th>WuXingLing001_speed</th>\n",
       "      <th>WuXingLing001_direct</th>\n",
       "      <th>WuXingLing002_u</th>\n",
       "      <th>WuXingLing002_v</th>\n",
       "      <th>WuXingLing002_speed</th>\n",
       "      <th>WuXingLing002_direct</th>\n",
       "      <th>WuXingLing003_u</th>\n",
       "      <th>WuXingLing003_v</th>\n",
       "      <th>...</th>\n",
       "      <th>WuXingLing014_v_1</th>\n",
       "      <th>WuXingLing014_v_2</th>\n",
       "      <th>WuXingLing014_v_3</th>\n",
       "      <th>WuXingLing014_speed_1</th>\n",
       "      <th>WuXingLing014_speed_2</th>\n",
       "      <th>WuXingLing014_speed_3</th>\n",
       "      <th>WuXingLing014_direct_1</th>\n",
       "      <th>WuXingLing014_direct_2</th>\n",
       "      <th>WuXingLing014_direct_3</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.706499</td>\n",
       "      <td>1.471656</td>\n",
       "      <td>8.83</td>\n",
       "      <td>9.594</td>\n",
       "      <td>8.385821</td>\n",
       "      <td>1.448483</td>\n",
       "      <td>8.51</td>\n",
       "      <td>9.800</td>\n",
       "      <td>8.330512</td>\n",
       "      <td>3.927680</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8.884077</td>\n",
       "      <td>1.375963</td>\n",
       "      <td>8.99</td>\n",
       "      <td>8.804</td>\n",
       "      <td>9.188143</td>\n",
       "      <td>-1.677390</td>\n",
       "      <td>9.34</td>\n",
       "      <td>-10.346</td>\n",
       "      <td>9.220932</td>\n",
       "      <td>1.607486</td>\n",
       "      <td>...</td>\n",
       "      <td>2.701541</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9.03</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.408</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8.668756</td>\n",
       "      <td>2.492604</td>\n",
       "      <td>9.02</td>\n",
       "      <td>16.042</td>\n",
       "      <td>9.037263</td>\n",
       "      <td>-2.064166</td>\n",
       "      <td>9.27</td>\n",
       "      <td>-12.866</td>\n",
       "      <td>9.132929</td>\n",
       "      <td>3.635726</td>\n",
       "      <td>...</td>\n",
       "      <td>2.220050</td>\n",
       "      <td>2.701541</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8.66</td>\n",
       "      <td>9.03</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.854</td>\n",
       "      <td>17.408</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9.015913</td>\n",
       "      <td>1.234225</td>\n",
       "      <td>9.10</td>\n",
       "      <td>7.795</td>\n",
       "      <td>8.884755</td>\n",
       "      <td>-2.781589</td>\n",
       "      <td>9.31</td>\n",
       "      <td>-17.384</td>\n",
       "      <td>10.156300</td>\n",
       "      <td>1.045789</td>\n",
       "      <td>...</td>\n",
       "      <td>0.005303</td>\n",
       "      <td>2.220050</td>\n",
       "      <td>2.701541</td>\n",
       "      <td>8.44</td>\n",
       "      <td>8.66</td>\n",
       "      <td>9.03</td>\n",
       "      <td>0.036</td>\n",
       "      <td>14.854</td>\n",
       "      <td>17.408</td>\n",
       "      <td>9.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9.028695</td>\n",
       "      <td>1.484979</td>\n",
       "      <td>9.15</td>\n",
       "      <td>9.340</td>\n",
       "      <td>9.027363</td>\n",
       "      <td>-1.923437</td>\n",
       "      <td>9.23</td>\n",
       "      <td>-12.028</td>\n",
       "      <td>9.843780</td>\n",
       "      <td>3.624927</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.080035</td>\n",
       "      <td>0.005303</td>\n",
       "      <td>2.220050</td>\n",
       "      <td>7.53</td>\n",
       "      <td>8.44</td>\n",
       "      <td>8.66</td>\n",
       "      <td>-0.609</td>\n",
       "      <td>0.036</td>\n",
       "      <td>14.854</td>\n",
       "      <td>9.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60474</th>\n",
       "      <td>5.749037</td>\n",
       "      <td>-1.571680</td>\n",
       "      <td>5.96</td>\n",
       "      <td>-15.290</td>\n",
       "      <td>4.874758</td>\n",
       "      <td>-0.226136</td>\n",
       "      <td>4.88</td>\n",
       "      <td>-2.656</td>\n",
       "      <td>3.168823</td>\n",
       "      <td>3.906336</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.032630</td>\n",
       "      <td>-1.444223</td>\n",
       "      <td>-0.229143</td>\n",
       "      <td>4.56</td>\n",
       "      <td>4.34</td>\n",
       "      <td>4.39</td>\n",
       "      <td>-0.410</td>\n",
       "      <td>-19.437</td>\n",
       "      <td>-2.992</td>\n",
       "      <td>6.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60475</th>\n",
       "      <td>5.802566</td>\n",
       "      <td>-1.712521</td>\n",
       "      <td>6.05</td>\n",
       "      <td>-16.443</td>\n",
       "      <td>4.949902</td>\n",
       "      <td>1.185991</td>\n",
       "      <td>5.09</td>\n",
       "      <td>13.474</td>\n",
       "      <td>4.313997</td>\n",
       "      <td>2.776027</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.230082</td>\n",
       "      <td>-0.032630</td>\n",
       "      <td>-1.444223</td>\n",
       "      <td>4.71</td>\n",
       "      <td>4.56</td>\n",
       "      <td>4.34</td>\n",
       "      <td>-2.800</td>\n",
       "      <td>-0.410</td>\n",
       "      <td>-19.437</td>\n",
       "      <td>6.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60476</th>\n",
       "      <td>6.030606</td>\n",
       "      <td>-1.563552</td>\n",
       "      <td>6.23</td>\n",
       "      <td>-14.535</td>\n",
       "      <td>4.861333</td>\n",
       "      <td>0.819964</td>\n",
       "      <td>4.93</td>\n",
       "      <td>9.574</td>\n",
       "      <td>5.099126</td>\n",
       "      <td>0.853118</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.702198</td>\n",
       "      <td>-0.230082</td>\n",
       "      <td>-0.032630</td>\n",
       "      <td>4.71</td>\n",
       "      <td>4.71</td>\n",
       "      <td>4.56</td>\n",
       "      <td>-8.574</td>\n",
       "      <td>-2.800</td>\n",
       "      <td>-0.410</td>\n",
       "      <td>6.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60477</th>\n",
       "      <td>6.019641</td>\n",
       "      <td>-1.957759</td>\n",
       "      <td>6.33</td>\n",
       "      <td>-18.016</td>\n",
       "      <td>4.924815</td>\n",
       "      <td>-0.226046</td>\n",
       "      <td>4.93</td>\n",
       "      <td>-2.628</td>\n",
       "      <td>5.319357</td>\n",
       "      <td>-0.082727</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.347832</td>\n",
       "      <td>-0.702198</td>\n",
       "      <td>-0.230082</td>\n",
       "      <td>4.78</td>\n",
       "      <td>4.71</td>\n",
       "      <td>4.71</td>\n",
       "      <td>-4.173</td>\n",
       "      <td>-8.574</td>\n",
       "      <td>-2.800</td>\n",
       "      <td>6.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60478</th>\n",
       "      <td>5.835728</td>\n",
       "      <td>-2.528611</td>\n",
       "      <td>6.36</td>\n",
       "      <td>-23.427</td>\n",
       "      <td>4.973504</td>\n",
       "      <td>-0.603622</td>\n",
       "      <td>5.01</td>\n",
       "      <td>-6.920</td>\n",
       "      <td>5.360633</td>\n",
       "      <td>0.456081</td>\n",
       "      <td>...</td>\n",
       "      <td>-1.399623</td>\n",
       "      <td>-0.347832</td>\n",
       "      <td>-0.702198</td>\n",
       "      <td>4.75</td>\n",
       "      <td>4.78</td>\n",
       "      <td>4.71</td>\n",
       "      <td>-17.137</td>\n",
       "      <td>-4.173</td>\n",
       "      <td>-8.574</td>\n",
       "      <td>6.36</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>60479 rows × 225 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       WuXingLing001_u  WuXingLing001_v  WuXingLing001_speed  \\\n",
       "0             8.706499         1.471656                 8.83   \n",
       "1             8.884077         1.375963                 8.99   \n",
       "2             8.668756         2.492604                 9.02   \n",
       "3             9.015913         1.234225                 9.10   \n",
       "4             9.028695         1.484979                 9.15   \n",
       "...                ...              ...                  ...   \n",
       "60474         5.749037        -1.571680                 5.96   \n",
       "60475         5.802566        -1.712521                 6.05   \n",
       "60476         6.030606        -1.563552                 6.23   \n",
       "60477         6.019641        -1.957759                 6.33   \n",
       "60478         5.835728        -2.528611                 6.36   \n",
       "\n",
       "       WuXingLing001_direct  WuXingLing002_u  WuXingLing002_v  \\\n",
       "0                     9.594         8.385821         1.448483   \n",
       "1                     8.804         9.188143        -1.677390   \n",
       "2                    16.042         9.037263        -2.064166   \n",
       "3                     7.795         8.884755        -2.781589   \n",
       "4                     9.340         9.027363        -1.923437   \n",
       "...                     ...              ...              ...   \n",
       "60474               -15.290         4.874758        -0.226136   \n",
       "60475               -16.443         4.949902         1.185991   \n",
       "60476               -14.535         4.861333         0.819964   \n",
       "60477               -18.016         4.924815        -0.226046   \n",
       "60478               -23.427         4.973504        -0.603622   \n",
       "\n",
       "       WuXingLing002_speed  WuXingLing002_direct  WuXingLing003_u  \\\n",
       "0                     8.51                 9.800         8.330512   \n",
       "1                     9.34               -10.346         9.220932   \n",
       "2                     9.27               -12.866         9.132929   \n",
       "3                     9.31               -17.384        10.156300   \n",
       "4                     9.23               -12.028         9.843780   \n",
       "...                    ...                   ...              ...   \n",
       "60474                 4.88                -2.656         3.168823   \n",
       "60475                 5.09                13.474         4.313997   \n",
       "60476                 4.93                 9.574         5.099126   \n",
       "60477                 4.93                -2.628         5.319357   \n",
       "60478                 5.01                -6.920         5.360633   \n",
       "\n",
       "       WuXingLing003_v  ...  WuXingLing014_v_1  WuXingLing014_v_2  \\\n",
       "0             3.927680  ...                NaN                NaN   \n",
       "1             1.607486  ...           2.701541                NaN   \n",
       "2             3.635726  ...           2.220050           2.701541   \n",
       "3             1.045789  ...           0.005303           2.220050   \n",
       "4             3.624927  ...          -0.080035           0.005303   \n",
       "...                ...  ...                ...                ...   \n",
       "60474         3.906336  ...          -0.032630          -1.444223   \n",
       "60475         2.776027  ...          -0.230082          -0.032630   \n",
       "60476         0.853118  ...          -0.702198          -0.230082   \n",
       "60477        -0.082727  ...          -0.347832          -0.702198   \n",
       "60478         0.456081  ...          -1.399623          -0.347832   \n",
       "\n",
       "       WuXingLing014_v_3  WuXingLing014_speed_1  WuXingLing014_speed_2  \\\n",
       "0                    NaN                    NaN                    NaN   \n",
       "1                    NaN                   9.03                    NaN   \n",
       "2                    NaN                   8.66                   9.03   \n",
       "3               2.701541                   8.44                   8.66   \n",
       "4               2.220050                   7.53                   8.44   \n",
       "...                  ...                    ...                    ...   \n",
       "60474          -0.229143                   4.56                   4.34   \n",
       "60475          -1.444223                   4.71                   4.56   \n",
       "60476          -0.032630                   4.71                   4.71   \n",
       "60477          -0.230082                   4.78                   4.71   \n",
       "60478          -0.702198                   4.75                   4.78   \n",
       "\n",
       "       WuXingLing014_speed_3  WuXingLing014_direct_1  WuXingLing014_direct_2  \\\n",
       "0                        NaN                     NaN                     NaN   \n",
       "1                        NaN                  17.408                     NaN   \n",
       "2                        NaN                  14.854                  17.408   \n",
       "3                       9.03                   0.036                  14.854   \n",
       "4                       8.66                  -0.609                   0.036   \n",
       "...                      ...                     ...                     ...   \n",
       "60474                   4.39                  -0.410                 -19.437   \n",
       "60475                   4.34                  -2.800                  -0.410   \n",
       "60476                   4.56                  -8.574                  -2.800   \n",
       "60477                   4.71                  -4.173                  -8.574   \n",
       "60478                   4.71                 -17.137                  -4.173   \n",
       "\n",
       "       WuXingLing014_direct_3  target  \n",
       "0                         NaN    8.99  \n",
       "1                         NaN    9.02  \n",
       "2                         NaN    9.10  \n",
       "3                      17.408    9.15  \n",
       "4                      14.854    9.57  \n",
       "...                       ...     ...  \n",
       "60474                  -2.992    6.05  \n",
       "60475                 -19.437    6.23  \n",
       "60476                  -0.410    6.33  \n",
       "60477                  -2.800    6.36  \n",
       "60478                  -8.574    6.36  \n",
       "\n",
       "[60479 rows x 225 columns]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n",
      "1 warning generated.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.012073 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.010212 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.010413 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.008430 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.010327 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.010497 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.010324 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.009382 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.009504 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.008893 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.012353 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] This is the GPU trainer!!\n",
      "[LightGBM] [Info] Total Bins 57120\n",
      "[LightGBM] [Info] Number of data points in the train set: 60479, number of used features: 224\n",
      "[LightGBM] [Info] Using GPU Device: NVIDIA GeForce RTX 3090, Vendor: NVIDIA Corporation\n",
      "[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...\n",
      "[LightGBM] [Info] GPU programs have been built\n",
      "[LightGBM] [Info] Size of histogram bin entry: 8\n",
      "[LightGBM] [Info] 224 dense feature groups (12.92 MB) transferred to GPU in 0.011853 secs. 0 sparse feature groups\n",
      "[LightGBM] [Info] Start training from score 7.660000\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n",
      "[LightGBM] [Warning] No further splits with positive gain, best gain: -inf\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>VotingRegressor(estimators=[(&#x27;lightgbm_0&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=0)),\n",
       "                            (&#x27;lightgbm_1&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=10)),\n",
       "                            (&#x27;lightgbm_11&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=11))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">VotingRegressor</label><div class=\"sk-toggleable__content\"><pre>VotingRegressor(estimators=[(&#x27;lightgbm_0&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=0)),\n",
       "                            (&#x27;lightgbm_1&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=10)),\n",
       "                            (&#x27;lightgbm_11&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=11))])</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_0</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=0)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_1</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=1)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_2</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=2)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_3</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=3)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_4</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=4)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_5</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=5)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_6</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=6)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_7</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=7)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_8</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-10\" type=\"checkbox\" ><label for=\"sk-estimator-id-10\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=8)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_9</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=9)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_10</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=10)</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><label>lightgbm_11</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-13\" type=\"checkbox\" ><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LGBMRegressor</label><div class=\"sk-toggleable__content\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;gpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=16, min_data_in_leaf=50, n_estimators=2500,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=11)</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "VotingRegressor(estimators=[('lightgbm_0',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device='gpu',\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=0)),\n",
       "                            ('lightgbm_1',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=10)),\n",
       "                            ('lightgbm_11',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device='gpu',\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=16, min_data_in_leaf=50,\n",
       "                                           n_estimators=2500, num_leaves=100,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=11))])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "votingRegressor.fit(train_data.drop('WuXingLing001_speed', axis=1), train_data['WuXingLing001_speed'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n"
     ]
    }
   ],
   "source": [
    "predictions = votingRegressor.predict(test_data.drop('WuXingLing001_speed', axis=1))\n",
    "actual_values = test_data['WuXingLing001_speed']\n",
    "mse = mean_squared_error(actual_values, predictions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB5LklEQVR4nO3dd1zV1R/H8dcFGSqCiTghMVeauStH5mqbWZo4y1Vqy5Vathw/y8xKW1qa4sotmVmONDVzpDnK0syMXGFucaJczu+PG1cuXOBehlzg/Xw8eOg93/M933NBvR/P+ByLMcYgIiIi4oG8croDIiIiIqlRoCIiIiIeS4GKiIiIeCwFKiIiIuKxFKiIiIiIx1KgIiIiIh5LgYqIiIh4LAUqIiIi4rEUqIiIiIjHUqAi+dIHH3yAxWKhevXqGW7jn3/+Yfjw4ezcuTPrOpaGpk2b0rRp0+vyrLSEh4djsVjsXwEBAdxxxx3MmDHjujx/2rRpWCwW/v77b3tZRr83b775JosXL86yviX6+++/sVgsTJs2LdU6AwYMwGKx8Pvvv6da55VXXsFisbB9+3aXnx0eHk63bt3c6K2IZ1OgIvnS1KlTAfjtt9/48ccfM9TGP//8w4gRI65boOJJGjVqxKZNm9i0aZM9cOjatSsTJ07Mkf5MmDCBCRMmuH1fdgUqrujZsydw7c9icgkJCcyYMYNatWpRp06d69k1EY+iQEXynZ9++omff/6Zli1bAjBlypQc7lHuU7RoUerXr0/9+vV57LHHWL58OYGBgbz33nup3mO1WomLi8uW/lSrVo1q1aplS9vZpXr16tx+++3MnDmT+Pj4FNdXrlzJ4cOH7QGNSH6lQEXyncTA5K233qJhw4bMnTuXixcvpqh35MgRevXqRVhYGL6+vpQpU4bHHnuMf//9l7Vr13LbbbcB0L17d/s0yPDhw4HUpyK6detGeHi4Q9mIESO44447KFasGIGBgdSpU4cpU6aQkfNCH3nkEcqVK0dCQkKKa3fccYfD/8wXLFjAHXfcQVBQEIUKFeKmm26iR48ebj8TbIFLlSpVOHDgAHBt6uPtt99m1KhRlC9fHj8/P9asWQPYgsWHH36YYsWK4e/vT+3atZk/f36Kdjdv3kyjRo3w9/enTJkyDB06lKtXr6ao5+z7HRcXx8iRI6latSr+/v4EBwfTrFkzNm7cCIDFYuHChQtMnz7d/vNL2sbRo0fp3bs3oaGh+Pr6Ur58eUaMGJEiqPjnn3+IiIigSJEiBAUF0b59e44ePerS961nz54cPXqUZcuWpbgWGRmJn58fnTt35vLly7zwwgvUqlWLoKAgihUrRoMGDfjyyy/TfYazqTKAtWvXYrFYWLt2rUP5qlWraNGiBYGBgRQqVIhGjRqxevVqhzrHjx+3/93w8/MjJCSERo0asWrVKpfet4g7CuR0B0Sup0uXLjFnzhxuu+02qlevTo8ePXjyySdZsGABXbt2tdc7cuQIt912G1evXuXll1+mRo0anDx5khUrVnD69Gnq1KlDZGQk3bt359VXX7WPzoSGhrrdp7///pvevXtz4403ArYP5+eff54jR47w+uuvu9VWjx49aN26Nd999x133323vfz3339ny5YtfPDBBwBs2rSJ9u3b0759e4YPH46/vz8HDhzgu+++c7v/AFevXuXAgQOEhIQ4lH/wwQdUrlyZd955h8DAQCpVqsSaNWu4//77ueOOO/jkk08ICgpi7ty5tG/fnosXL9rXV+zevZsWLVoQHh7OtGnTKFSoEBMmTGD27Nnp9ic+Pp4HHniA9evX079/f5o3b058fDybN2/m4MGDNGzYkE2bNtG8eXOaNWvGa6+9BkBgYCBgC1Juv/12vLy8eP3116lQoQKbNm1i1KhR/P3330RGRgK2P0933303//zzD6NHj6Zy5cp8/fXXtG/f3qXvW8eOHRkwYABTp06lVatW9vLTp0/z5Zdf8uijj3LDDTdw9uxZTp06xaBBgyhbtixXrlxh1apVtGnThsjISJ544gmXnpeeWbNm8cQTT9C6dWumT5+Oj48Pn376Kffddx8rVqygRYsWADz++ONs376dN954g8qVK3PmzBm2b9/OyZMns6QfIg6MSD4yY8YMA5hPPvnEGGPMuXPnTEBAgGncuLFDvR49ehgfHx+ze/fuVNvaunWrAUxkZGSKa02aNDFNmjRJUd61a1dTrly5VNu0Wq3m6tWrZuTIkSY4ONgkJCSk22ZSV69eNSVLljSdOnVyKB8yZIjx9fU1J06cMMYY88477xjAnDlzJs32nClXrpx58MEHzdWrV83Vq1dNdHS06dq1qwHM4MGDjTHGREdHG8BUqFDBXLlyxeH+m2++2dSuXdtcvXrVofyhhx4ypUuXNlar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v/7avP7662bOnDkO95UoUcIsWbLEbN261fz+++/GGGP++ecfU65cOXPzzTebCRMmmNWrV5uvv/7afPzxx6Zly5bm0KFDxhjbn4HKlSuboKAg89FHH5kVK1aYfv36mRtvvNHlxbSJHn74YWOxWAxg5s6d63Bt6tSpBjBPP/20Wb16tZk2bZqpUKGC/c9JUskX08bHx5sqVaqYG2+80cyePdssW7bM9OrVy5QvX95hMa0xxsycOdN4eXmZ9u3bmwULFph169aZhQsXmtdee8306dPHGGP7s1W7dm0zduxY89VXX5m1a9easWPHGn9//xSLuEWyggIVyRceeeQR4+vra44dO5ZqnQ4dOpgCBQrYd5kcOnTI9OjRw5QqVcr4+PiYMmXKmIiICIfdGXPmzDE333yz8fHxMYAZNmyY/dr06dNN1apVjb+/v6lWrZqZN2+e010/U6dONVWqVDF+fn7mpptuMqNHjzZTpkzJVKBijDGdOnUygGnUqFGKa0uXLjUPPPCAKVu2rPH19TUlSpQwDz74oFm/fn267WY2UDHGmJ9//tlERESYEiVKGB8fH1OqVCnTvHlz+26sRBs2bDD169c3fn5+plSpUmbw4MFm0qRJLn1vLl26ZF5//XVTqVIl4+vra4KDg03z5s3Nxo0b7XV27txpGjVqZAoVKmQAhzaOHz9u+vbta8qXL298fHxMsWLFTN26dc0rr7xizp8/b693+PBh07ZtWxMQEGCKFCli2rZtazZu3Oh2oPLll18awBQrVsxcvnw5xfW33nrLhIeHGz8/P1O1alUzefJkM2zYsHQDFWOM+eOPP8y9995rAgMDTUhIiHn++efN119/nSJQMcaYdevWmZYtW5pixYoZHx8fU7ZsWdOyZUuzYMECY4wxly9fNn369DE1atQwgYGBpmDBgqZKlSpm2LBh5sKFCy6/XxFXWYzJQFYpERERketAu35ERETEYylQEREREY+lQEVEREQ8lgIVERER8VgKVERERMRjKVARERERj5WrM9MmJCTwzz//UKRIkRSpukVERMQzGWM4d+6cS2dy5epA5Z9//iEsLCynuyEiIiIZcOjQoXQPgM3VgUqRIkUA2xtNen6KiIiIeK7Y2FjCwsLsn+NpydWBSuJ0T2BgoAIVERGRXMaVZRs5upg2PDwci8WS4uvZZ5/NyW6JiIiIh8jREZWt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gwcPpnfv3vbriaNJibZt28aaNWsICAiwf918880A7N+/n/3793PlyhUaNGhgv6dYsWJUqVIl1T7s3LmT0NBQt3aobd++3b6rLWlf1q1bZ3/fe/bscegHkOK1iEh2Kl362u+v4kt75vEib3E/yzlOiRT13RiozzSPSKHviVz9IWTHD2vKlCnEx8dTtmxZe5kxBh8fH06fPs0NN9xAwYIF3W7Xy8vLYfoISHGqdLdu3Th+/Djjx4+nXLly+Pn50aBBA7cWqLZq1YqEhAS+/vprbrvtNtavX897771nvz58+HA6derE119/zbJlyxg2bBhz587l0UcfTbXNwYMH061bNwoVKkTp0qVTJD0rXLiww+uEhARatWrFmDFjUrRVunRp+7SLOzLyPU9ISMDb25tt27bZA7VEAQEBACl+JiIi1018PIwcSeO2EYSGVrf/Bz2am3ibF1O9LWlgk900opIKV38IWf3Dio+PZ8aMGbz77rvs3LnT/vXzzz9Trlw5Pv/8cwBq1KjB6tWrU23H19c3RYr1kJAQjh496vDBuHPnToc669evp2/fvjz44IPccsst+Pn5OSxAdUXBggVp06YNn3/+OXPmzKFy5crUrVvXoU7lypUZMGAAK1eupE2bNkRGRqbZZvHixalYsSJlypRxKTNrnTp1+O233wgPD6dixYoOX4ULF6ZixYr4+PiwefNm+z2nT5/mjz/+SLXNGjVqcPjw4VTrOPue165dG6vVyrFjx1L0o1SpUgBUq1bNoR9AitciIu5Kd8fq4cO2HSL/+x/eHSP4aMwF0vvn1WKBsDBo3DibOu2EApVUNG4MoaGk+kPLrh/W0qVLOX36ND179qR69eoOX4899hhTpkwBYNiwYcyZM4dhw4axZ88edu3axdtvv21vJzw8nO+//54jR47YA42mTZty/Phx3n77bfbv38/HH3/MsmXLHJ5fsWJFZs6cyZ49e/jxxx/p3LlzhkYSOnfuzNdff83UqVPp0qWLvfzSpUs899xzrF27lgMHDrBhwwa2bt1K1apVM/LtStWzzz7LqVOn6NixI1u2bOGvv/5i5cqV9OjRA6vVSkBAAD179mTw4MGsXr2aX3/9lW7duuHllfpfiSZNmnDXXXfRtm1bvv32W6Kjo1m2bBnLly8HbN/z8+fPs3r1ak6cOMHFixepXLkynTt35oknniAqKoro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ClRERETEYylQEREREY+lQEVEREQ8lgIVERER8VgKVERERMRjKVARERERj1UgpzuQGcYYAGJjY3O4JyIiIuKqxM/txM/xtOTqQOXcuXMAhIWF5XBPRERExF3nzp0jKCgozToW40o446ESEhL4559/KFKkCBaLJae7kyvFxsYSFhbGoUOHCAwMzOnuyH/0c/E8+pl4Hv1MPJMrPxdjDOfOnaNMmTJ4eaW9CiVXj6h4eXkRGhqa093IEwIDA/UX3QPp5+J59DPxPPqZeKb0fi7pjaQk0mJaERER8VgKVERERMRjKVDJ5/z8/Bg2bBh+fn453RVJQj8Xz6OfiefRz8QzZfXPJVcvphUREZG8TSMqIiIi4rEUqIiIiIjHUqAiIiIiHkuBioiIiHgsBSr51MSJE6lRo4Y9IU+DBg1YtmxZTndLkhg9ejQWi4X+/fvndFfyteHDh2OxWBy+SpUqldPdyveOHDlCly5dCA4OplChQtSqVYtt27bldLfyrfDw8BR/TywWC88++2ym287VmWkl40JDQ3nrrbeoWLEiANOnT6d169bs2LGDW265JYd7J1u3bmXSpEnUqFEjp7siwC233MKqVavsr729vXOwN3L69GkaNWpEs2bNWLZsGSVKlGD//v0ULVo0p7uWb23duhWr1Wp//euvv3LPPffQrl27TLetQCWfatWqlcPrN954g4kTJ7J582YFKjns/PnzdO7cmcmTJzNq1Kic7o4ABQoU0CiKBxkzZgxhYWFERkbay8LDw3OuQ0JISIjD67feeosKFSrQpEmTTLetqR/BarUyd+5cLly4QIMGDXK6O/nes88+S8uWLbn77rtzuivyn3379lGmTBnKly9Phw4d+Ouvv3K6S/nakiVLqFevHu3ataNEiRLUrl2byZMn53S35D9Xrlxh1qxZ9OjRI0sODFagko/t2rWLgIAA/Pz86NOnD1988QXVqlXL6W7la3PnzmX79u2MHj06p7si/7njjjuYMWMGK1asYPLkyRw9epSGDRty8uTJnO5avvXXX38xceJEKlWqxIoVK+jTpw99+/ZlxowZOd01ARYvXsyZM2fo1q1blrSnzLT52JUrVzh48CBnzpxh0aJFfPbZZ6xbt07BSg45dOgQ9erVY+XKldSsWROApk2bUqtWLcaPH5+znRO7CxcuUKFCBYYMGcLAgQNzujv5kq+v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Hb4ee+wxpkyZAsCwYcOYM2cOw4YNY8+ePezatYu3337b3k54eDjff/89R44csQcaTZs25fjx47z99tvs37+fjz/+mGXLljk8v2LFisycOZM9e/bw448/0rlz5wyN3gQEBNC+fXtefvll/vnnH7p16+bwjG+//ZaNGzeyZ88eevfuzdGjR9Nsr3nz5nz00Uds376dn376iT59+uDj42O/3rlzZ4oXL07r1q1Zv3490dHRrFu3jn79+nH48GGio6MZOnQomzZt4sCBA6xcuZI//vhD61REspACFZF8YMqUKdx9990OowCJ2rZty86dO9m+fTtNmzZlwYIFLFmyhFq1atG8eXOHXTMjR47k77//pkKFCvapj6pVqzJhwgQ+/vhjatasyZYtWxwWtYJt0evp06epXbs2jz/+OH379qVEiRIZei89e/bk9OnT3H333dx444328tdee406depw33330bRpU0qVKsUjjzySZlvvvvsuYWFh3HXXXXTq1IlBgwZRqFAh+/VChQrx/fffc+ONN9KmTRuqVq1Kjx49uHTpEoGBgRQqVIjff/+dtm3bUrlyZXr16sVzzz1H7969M/TeRCQli0k+QSsiIiLiITSiIiIiIh5LgYqIiIh4LAUqIiIi4rEUqIiIiIjHUqAiIiIiHkuBioiIiHgsBSoiIiLisRSoiIiIiMdSoCIiIiIeS4GKiIiIeCwFKiIiIuKxFKiIiIiIx/o/BvW0hZqg4z8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 假设 predictions 和 actual_values 已经定义\n",
    "# predictions 是模型的预测值，actual_values 是真实值\n",
    "\n",
    "\n",
    "length = 1000\n",
    "actual_values = actual_values[:length]\n",
    "predictions = predictions[:length]\n",
    "\n",
    "# 创建散点图\n",
    "plt.scatter(actual_values, predictions, color='blue', label='Actual vs Predicted')\n",
    "\n",
    "# 添加标签和标题\n",
    "plt.xlabel('Actual Values')\n",
    "plt.ylabel('Predicted Values')\n",
    "plt.title('Actual vs Predicted Values')\n",
    "\n",
    "# 添加对角线，用于比较完美预测的情况\n",
    "plt.plot([min(actual_values), max(actual_values)], [min(actual_values), max(actual_values)], linestyle='--', color='red', linewidth=2, label='Perfect Prediction')\n",
    "\n",
    "# 显示图例\n",
    "plt.legend()\n",
    "\n",
    "# 显示图形\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f57eadb3fa0>]"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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0kkn8SuvvJJfeeWV/KSTTuLnnnvukte/EMLi0Y9+NH/ta18bue+EE07g73rXuwa0RsPN3r17OQD+85//nHPOue/7fPPmzfyDH/ygWqZer/PJyUn+iU98gnPO+fT0NLdtm19yySVqmQceeIAbhsGvuOKK5f0AK5y5uTl+3HHH8R/+8If8rLPOUsKCtnPveOc738nPPPPMzMdpW/eGc845h7/iFa+I3Pfc5z6Xn3/++Zxz2s69IC4serVNb7nlFg6AX3311WqZq666igPgt95665LWeehDIc1mEzt27MDTnva0yP1Pe9rTcOWVVw5orYabmZkZAMDatWsBAHfffTd2794d2cblchlnnXWW2sY7duyA4ziRZbZs2YKTTjqJvocYb3jDG3DOOefg7LPPjtxP27l3fOtb38Lpp5+OF7zgBdi4cSNOPfVUfPrTn1aP07buDWeeeSZ+/OMf4w9/+AMA4Le//S1+9atf4Y//+I8B0HbuB73apldddRUmJyfxmMc8Ri3z2Mc+FpOTk0ve7ss+hKzX7N+/H57nYdOmTZH7N23ahN27dw9orYYXzjne/va348wzz8RJJ50EAGo7pm3je++9Vy1TKpWwZs2axDL0PYRccskluP7663HttdcmHqPt3DvuuusuXHTRRXj729+O97znPbjmmmvw5je/GeVyGS972ctoW/eId77znZiZmcEJJ5wA0zTheR7e//7348UvfjEA2qf7Qa+26e7du7Fx48bE62/cuHHJ233ohYUkPoKdc97TseyrhTe+8Y343e9+h1/96leJx7rZxvQ9hOzcuRNvectb8IMf/ACVSiVzOdrOS8f3fZx++un4wAc+AAA49dRTcfPNN+Oiiy7Cy172MrUcbeul8dWvfhVf/OIX8eUvfxkPe9jDcMMNN+Ctb30rtmzZggsuuEAtR9u59/Rim6Yt34vtPvShkPXr18M0zYTC2rt3b0LREfm86U1vwre+9S389Kc/jYy237x5MwDkbuPNmzej2Wzi0KFDmcusdnbs2IG9e/fitNNOg2VZsCwLP//5z/HRj34UlmWp7UTbeekcdthhOPHEEyP3PfShD8V9990HgPbpXvGOd7wD73rXu/CiF70IJ598Ml760pfibW97Gy688EIAtJ37Qa+26ebNm7Fnz57E6+/bt2/J233ohUWpVMJpp52GH/7wh5H7f/jDH+Jxj3vcgNZquOCc441vfCMuu+wy/OQnP8FRRx0Vefyoo47C5s2bI9u42Wzi5z//udrGp512Gmzbjizz4IMP4qabbqLvQfCUpzwFN954I2644Qb17/TTT8d5552HG264AUcffTRt5x7x+Mc/PlEy/Yc//AHbt28HQPt0r1hcXIRhRE8jpmmqclPazr2nV9v0jDPOwMzMDK655hq1zK9//WvMzMwsfbsvKfVzhSDLTS+++GJ+yy238Le+9a18dHSU33PPPYNetaHgda97Hf//27tDVtXhOIzjBnEqyEAMgqJgMqjBF2AwGXwDsuAbEGwWg0kw2SwWi9YVq6BNMLhgtFlMIigoFp/TxjkX4d6Dfy73cL8fWNqP4Z4wnrDftG1bq9VKx+PRP263mz8zGAxk27Zc19Vut1Oj0Xi53pROp7VYLLTdblWtVv/rlbE/8XkrRCJnUzabjYLBoPr9vvb7vWazmaLRqKbTqT9D1u9rNptKpVL+uqnrukokEup0Ov4MOX/f9XqV53nyPE+BQEDD4VCe5/mfUDCVaa1WU6lU0nq91nq9VrFYZN30s9FopGw2q1AopHK57K9K4vcCgcDLYzKZ+DPP51O9Xk/JZFKWZalSqWi32325zv1+V6vVUjweVyQSUb1e1+Fw+Mt387P8WizI2Zz5fK5CoSDLspTP5zUej7+cJ+v3XS4XtdttZTIZhcNh5XI5dbtdPR4Pf4acv2+5XL58JjebTUnmMj2dTnIcR7FYTLFYTI7j6Hw+v/37+dt0AABgzI9/xwIAAPw7KBYAAMAYigUAADCGYgEAAIyhWAAAAGMoFgAAwBiKBQAAMIZiAQAAjKFYAAAAYygWAADAGIoFAAAwhmIBAACM+QBhgeDTfxWU7QAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [i for i in range(length)]\n",
    "plt.plot(x, predictions)\n",
    "plt.plot(x, actual_values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pickle\n",
    "\n",
    "# 保存模型\n",
    "with open('model_filename.pkl', 'wb') as file:\n",
    "    pickle.dump(votingRegressor, file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 加载模型\n",
    "with open('model_filename.pkl', 'rb') as file:\n",
    "    loaded_model = pickle.load(file)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "top1hik",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.0"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
